1. Field of the Invention
The invention relates to a method for optimizing a Fuzzy Neural Network (FNN), and more particularly, to an improved method for optimizing and training a FNN using genetic algorithms.
2. Description of the Related Art
A Fuzzy Neural Network (FNN), formed by combining a fuzzy inference system and a neural network, possess the advantages of both a fuzzy inference system and a neural network. The fuzzy inference system allows linguistically descriptive algorithms including obscurity, such as decisions by humans, using if-then type fuzzy rules. The neural network allows regulating an input-output relationship by updating coupling coefficients using a learning function.
The FNN allows, for example, modifying the shape of a membership function by using a leaning method such as a back propagation method, wherein a membership function in the first-half portion of a fuzzy inference system is constructed using, for example, a sigmoid function; and the central value and the slope of the membership function of the first-half portion, as well as output of fuzzy rules, are made to correspond to weighting values for coupling in a neural network.
When the number of fuzzy rules is too small, errors in output become large. On the other hand, when the number of fuzzy rules is too high, the probability of outputting appropriate values for inputs other than teacher data is reduced (decreased adaptability). Thus, it is difficult to obtain an appropriate number of fuzzy rules to balance the adaptability and the occurrence of errors. Conventionally, the number of fuzzy rules for a given control object is usually determined through trial and error, and thus, it can take a long time to obtain the appropriate number of fuzzy rules and the proper coefficients for those rules.
Further, due to time-dependent changes in the controlled object, or changes in the surrounding conditions, the appropriate number of fuzzy rules can change. Thus, even when an appropriate number of fuzzy rules has been determined, changes in the controlled object, such as an engine, or changes in the operating environment, may mean that the control system cannot adapt to the changes in a timely manner and satisfactory control cannot be achieved.
In a FNN, antecedent membership functions of the fuzzy reasoning set are realized with various functions including the sigmoidal function. Each membership function typically includes a center position, a slope, and outputs of fuzzy rules corresponding to coupling weights for the neural network. During training, the configurations of the membership functions are modified using learning methods such as the back-propagation.
Because it can learn, the FNN can optimize output information even when the input information is incomplete, unobservable, or estimated. In these instances, selection of the appropriate inputs to achieve optimization of the desired outputs depends on the designer of the FNN. In other words, the designer typically selects the most suitable input information based on a presumption of the desired output information and the expected operating conditions.
For example, in a control system for an internal combustion engine, some desirable input quantities are either too expensive or too difficult to measure economically. One such quantity is the volume of airflow into the engine (i.e., the volume of the intake air charge to the cylinders). Measuring the input airflow usually requires an expensive sensor known as an airflow meter. Another such quantity is the adhesion rate of the fuel that adheres on internal walls of intake manifolds or the like. Another such quantity is the evaporation speed of the adhered fuel.
Some desirable input quantities are obtained indirectly, i.e., estimated from other information sensed with a common sensor in an attempt to reduce the number of the sensors that measure engine performance.
In addition to the large number of possible input sensors, there are often large amounts of input data that must be processed to obtain each control output. As the number of input sensors increases, so does the processing load. The processing load can be reduced by carefully selecting the desired inputs (i.e. sensors), but it can be difficult to select the most suitable input information. Clearly, the control system designer is faced with a daunting task when selecting the optimal input information for a complex device such as an engine.
The present invention solves these and other problems by providing a method and apparatus for optimizing a FNN whereby input information, and combinations thereof, that are most useful for computing a desired control output are selected. In one embodiment, a FNN calculation process for fuzzy reasoning values includes a neural network structure. Output parameters are identified and computed by fuzzy reasoning using the neural network. An adjustment of fuzzy rules and/or membership functions is provided by a learning process. The learning process includes selecting candidate input data types (e.g. selecting sensors) that can provide input data for the fuzzy neural network. The input data is categorized and coded into chromosomes (individuals) for use by a genetic algorithm. The genetic algorithm is used to optimize the chromosomes, by evolving and selecting the individuals (chromosomes) that specify the number(s) and type(s) of input data for the FNN so as to optimize the operation of a controller that uses the FNN.
In one embodiment, the optimization method for the FNN also includes coding the coupling load corresponding to the FNN membership functions into the chromosomes, and evolving these individuals with the genetic algorithm using a desried fitness function.
In one embodiment, the optimized FNN is employed for control of an Internal Combustion Engine engine control, and the candidate input data types include data relating to operation of the engine.
In one embodiment, the input xe2x80x9ccandidatexe2x80x9d data types include intake pressure. In one embodiment, the FNN output data includes an engine air intake volume. In one embodiment, the input candidate data types include combustion chamber pressure, engine speed (i.e. revolutions per minute), fluctuation of the engine speed, and/or air intake volume. In one embodiment, control output data includes torque fluctuations of the engine. In one embodiment, the candidate input data types include intake manifold wall temperature, an ambient temperature of the intake manifold, and/or elapsed time from engine start. In one embodiment, output data includes a combustion chamber temperature of the engine.
In one embodiment, candidate input data includes engine coolant (e.g. water) temperature, oil temperature, and/or engine temperature. In one embodiment, output data includes intake manifold wall temperature.
In one embodiment, the candidate input data includes intake manifold wall temperature, engine speed (revolutions), air intake volume and/or intake air pressure (including pressures below ambient). In one embodiment, output data includes an evaporation time constant for fuel injected into the intake manifold.
In one embodiment, candidate input data includes engine speed, air intake volume and/or intake air pressure. In one embodiment, output data includes flow rate and timing of fuel injected into the intake manifold.
In one embodiment, candidate input data includes a fluctuation rate of a throttle angle and/or a fluctuation rate of the engine speed.